最近参与了FreeCodeCamp社区的一个英文课程的翻译活动, 使用的平台就是github, 看了一下他们翻译的一些要求以及规范什么的, 需要涉及到github上的PR(Pull Request)操作。 本来是很简单的一个事情, 但是由于我所在的公司都没有使用过git来管理项目, 所以还是花了我一些时间去了解这个东西, 收获颇多, 在这里就分享一下吧!

注: 这里为了叙述方便, 这里就以小明要与小红进行合作为例 , 小明需要对小红在GitHub上的的Repository进行fork等一系列的操作。

将小红在GitHub上的Repository clone到小明的本地电脑

  • 首先小明需要fork小红在GitHub上的Repository

    点击小红github上仓库的右侧Fork按钮, 此操作的作用是将小红在GitHub上的Repository复制到小明的GitHub,如下图:

​ 这时小明的GitHub上多了一个fork的Repository; 如下图:

  • 小明clone刚才Fork下来的Github Repository到自己的本地电脑

    打开刚才fork的Repository,复制该Repository的SSH地址然后输入命令, 这样就将项目clone到本地电脑上了

    1
    git clone xxx(项目的地址)

与小红在GitHub上的的Repository建立新的链接

  • 查看当前链接情况

    clone下来之后, 进入该项目的目录下面, 执行命令 git remote -v 就可以查看到当前仓库的链接情况

    1
    2
    cd ./challenges/
    git remove -v

    这时你会发现: 只与自己(也就是小明)的Repository 建立了链接,很显然没有与小红在GitHub上的Repository建立链接,如下图:

  • 与小红的GitHub上的Repository建立链接

    使用命令

    1
    git remote add upstream https://github.com/timo1160139211/firstGit.git (原仓库的地址)

    与小红在GitHub上的Repository建立链接,注意此处的SSH为小红的GitHub上的Repository的SSH; 然后再查看一次, 如下图 :

    如果小红的仓库(就是原仓库)有内容需要更新, 可以使用下面的命令pull到自己本地仓库

    1
    git pull upstream xxxbranch(拉取上游仓库到本地仓库,保持文件一致。)

修改文件提交 Commit

  • 新建工作分支

    使用命令 ( 新建并切换到新建的分支 xiaoming-branch ):

    1
    git checkout -b xiaoming-branch
  • 修改提交

    1
    2
    3
    git add . (添加文件到暂存区
    git commit -m 'translate'(提交修改到本地仓库)
    git push(推送本地仓库到远程 GitHub 仓库)

发起PR( Pull Request)

  • Comparing changes

    点击自己项目的 New pull request 按钮, 就会跳转到原仓库的地址项目, 再点击New pull requests按钮

  • 进入 Comparing changes 页面

  • Create pull request

提交PR之后, 最后 merge 就是小红的任务啦.